package com.hisense.ovcloud.warehouse.entity.device;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Table;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Table("product_info")
public class ProductInfo {
//    @Id(keyType = KeyType.Auto)
    @Column(value = "domain")
    private String domain;

//    @Id(keyType = KeyType.Auto)
    @Column(value = "sub_domain")
    private String subDomainId;

//    @Id(keyType = KeyType.Auto)
    @Column(value = "name")
    private String name;

    @Column(value = "type")
    private String type;

    @Column(value = "model")
    private String model;

    @Column(value = "os")
    private String os;

    @Column(value = "communication")
    private String communication;

    @Column(value = "protocol")
    private String protocol;

    @Column(value = "transport_protocol")
    private String transportProtocol = "tcp";

    @Column(value = "secType")
    private String secType = "RSA";

    @Column(value = "license_mode")
    private int licenseMode;

    @Column(value = "third_cloud")
    private String thirdCloud;

    @Column(value = "description")
    private String description;

    @Column(value = "category")
    private int category;

    @Column(value = "device_mode")
    private int deviceMode;

    @Column(value = "task_mode")
    private int taskMode;

    @Column(value = "task_update_policy")
    private int taskUpdatePolicy;

    @Column(value = "product_image_url")
    private String productImageUrl;

    @Column(value = "max_device_num")
    private long maxDeviceNum;

    @Column(value = "visibility")
    private int visibility;

    @Column(value = "device_uplink_url")
    private String deviceUplinkUrl = "CAN_NOT_EB_EMPTY";

    @Column(value = "department_id")
    private int departmentId;

    @Column(value = "create_time")
    private Date createTime;

    @Column(value = "modify_time")
    private Date modifyTime;

    @Column(value = "manufacture")
    private String manufacture;

    @Column(value = "featurecode")
    private String featurecode;

    @Column(value = "product_type")
    private int productType;

    @Column(value = "brand")
    private int brand;

    //[“TT” 1 , “HIMIT” 2 , “ALL” 3]
    @Column(value = "msg_trans_type")
    private int msgTransType;

    //["NO": 1, "YES": 2]
    @Column(value = "one_machine_one_secret")
    private int oneMachineOneSecret;
}
